home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / win / c / clikbar.exe / TESTCLIK.ZIP / TESTCLIK.C < prev    next >
C/C++ Source or Header  |  1992-04-20  |  16KB  |  530 lines

  1. /*============================================================================
  2.   testclik -- Demo program for ClickBar.DLL and ClickDlg.DLL
  3.  
  4.   File      : testclik.c
  5.  
  6.   Prototype : 
  7.  
  8.   Call      : 
  9.  
  10.   Library   : 
  11.  
  12.   7 February 1992 - dlcampbell
  13.   (c) 1991 Campbell SoftWare
  14. ----------------------------------------------------------------------------*/
  15. #include <windows.h>
  16. #include <wynbtn.h>
  17. #include <clickdlg.h>
  18. #include <clickbar.h>
  19.  
  20. #include "testclik.h"
  21.  
  22. /*----------------------------------------------------------------------------
  23.   Prototypes
  24. ----------------------------------------------------------------------------*/
  25. BOOL FAR PASCAL AboutDlgProc(HWND, WORD, WORD, LONG);
  26. void MakeHelpPathName(char *);
  27. BOOL FAR PASCAL TestClikDlgProc(HWND, WORD, WORD, LONG);
  28. long FAR PASCAL WndProc(HWND, WORD, WORD, LONG);
  29.  
  30. short   cxClient, cyClient;
  31. int     InitSettings, OldInitSettings;
  32.  
  33. char    szAppName[] = "testclik";
  34. HANDLE  hInst;
  35. HWND    hWndMain;
  36. HWND    hWndDlg = NULL;
  37. HWND    hWndDlg2 = NULL;
  38. FARPROC lpfnDisplayDlg, lpfnDlgMove, lpfnDlgPlus;
  39. FARPROC lpfnWynBtnSetup, lpfnClickBarSetup;
  40.  
  41. char    szHelpFileName[EXE_NAME_MAX_SIZE+1];    /* Help file name*/
  42.  
  43. /*============================================================================
  44.   WinMain -- main window procedure for TestClik
  45.  
  46.   File      : testclik.C
  47.  
  48.   Prototype : int PASCAL WinMain (HANDLE, HANDLE, LPSTR, int);
  49.  
  50.   Call      : WinMain (hInstance, hPrevInstance, lpszCmdParam, nCmdShow);
  51.  
  52.   Library   : 
  53.  
  54.   7 February 1992 - dlcampbell
  55.   (c) 1991 Campbell SoftWare
  56. ----------------------------------------------------------------------------*/
  57. #pragma warn -par                       /* nCmdShow, lpszCmdParam not used */
  58. int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,
  59.                                              LPSTR lpszCmdParam, int nCmdShow)
  60. {
  61. MSG         msg;
  62. WNDCLASS    WndClass;
  63. HDC         hdc;
  64. TEXTMETRIC  tm;
  65. HMENU       hMenu;
  66. HANDLE      hLibWynBtn, hClickBar, hClickDlg, hBWCCDll;
  67. FARPROC     lpfnDlgSetup;
  68. GLOBALHANDLE   MyStructHandle;
  69. FPWYNAPSESTRUCT MyStruct;
  70. static char szMenuTitle[21 + 1];
  71.  
  72. if (hPrevInstance)
  73.    return FALSE;
  74.  
  75. WndClass.style         = CS_HREDRAW | CS_VREDRAW;
  76. WndClass.lpfnWndProc   = WndProc;
  77. WndClass.cbClsExtra    = 0;
  78. WndClass.cbWndExtra    = 0;
  79. WndClass.hInstance     = hInstance;
  80. WndClass.hIcon         = LoadIcon(hInstance, szAppName);
  81. WndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
  82. WndClass.hbrBackground = GetStockObject(WHITE_BRUSH);
  83. WndClass.lpszMenuName  = szAppName;
  84. WndClass.lpszClassName = szAppName;
  85.  
  86. RegisterClass(&WndClass);
  87.  
  88. hdc = CreateIC("DISPLAY", NULL, NULL, NULL);
  89.    GetTextMetrics(hdc, &tm);
  90. DeleteDC(hdc);
  91.  
  92. cxClient = GetSystemMetrics(SM_CXSCREEN);
  93. cyClient = GetSystemMetrics(SM_CYSCREEN);
  94.  
  95. hLibWynBtn = LoadLibrary("WYNBTN.DLL");
  96. if (hLibWynBtn < 32)
  97.    {
  98.    FreeLibrary(hLibWynBtn);
  99.    MessageBox(GetFocus(),"Dynamic Link Library WYNBTN.DLL must be present",
  100.                                        szAppName, MB_ICONEXCLAMATION | MB_OK);
  101.    return 0;
  102.    }
  103.  
  104. hClickBar = LoadLibrary("CLICKBAR.DLL");
  105. if (hClickBar < 32)
  106.    {
  107.    FreeLibrary(hClickBar);
  108.    MessageBox(GetFocus(),"Dynamic Link Library CLICKBAR.DLL must be present",
  109.                                        szAppName, MB_ICONEXCLAMATION | MB_OK);
  110.    return 0;
  111.    }
  112.  
  113. hClickDlg = LoadLibrary("CLICKDLG.DLL");
  114. if (hClickDlg < 32)
  115.     {
  116.    FreeLibrary(hClickDlg);
  117.     MessageBox(GetFocus(),"Dynamic Link Library CLICKDLG.DLL must be present",
  118.                                        szAppName, MB_ICONEXCLAMATION | MB_OK);
  119.    return 0;
  120.     }
  121.  
  122. hBWCCDll = LoadLibrary("BWCC.DLL");
  123. if (hBWCCDll < 32)
  124.     {
  125.    FreeLibrary(hBWCCDll);
  126.     MessageBox(GetFocus(),"Dynamic Link Library BWCC.DLL must be present",
  127.                                        szAppName, MB_ICONEXCLAMATION | MB_OK);
  128.    return 0;
  129.     }
  130.  
  131. lpfnDlgSetup      = GetProcAddress(hClickDlg,  "ClickBarDialogSetup");
  132. lpfnDlgMove       = GetProcAddress(hClickDlg,  "ClickBarDialogMove");
  133. lpfnDisplayDlg    = GetProcAddress(hClickDlg,  "ClickBarDialogProc");
  134.  
  135. lpfnWynBtnSetup   = GetProcAddress(hLibWynBtn, "WynBtnSetup");
  136. lpfnClickBarSetup = GetProcAddress(hClickBar,  "ClickBarSetup");
  137.  
  138. MyStructHandle = GlobalAlloc(GHND, sizeof(WYNAPSE_STRUCT));
  139. MyStruct = (FPWYNAPSESTRUCT)GlobalLock(MyStructHandle);
  140.    lstrcpy(MyStruct->RegName, (LPSTR)"Your Name");  /* WynBtn RegName */
  141.    MyStruct->RegNumber = 0;                         /* WynBtn RegNumber */
  142. GlobalUnlock(MyStructHandle);
  143.  
  144. (*lpfnWynBtnSetup)(MyStructHandle);
  145.  
  146. MyStruct = (FPWYNAPSESTRUCT)GlobalLock(MyStructHandle);
  147.    lstrcpy(MyStruct->RegName, (LPSTR)"Your Name");  /* ClickBar RegName */
  148.    MyStruct->RegNumber = 0;                         /* ClickBar RegNumber */
  149. GlobalUnlock(MyStructHandle);
  150.  
  151. (*lpfnClickBarSetup)(MyStructHandle);
  152.  
  153. GlobalFree(MyStructHandle);
  154.  
  155. hWndMain = CreateWindow(szAppName,   /* window class name */
  156.                            szAppName,  /* window caption */
  157.                            WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
  158.                            CW_USEDEFAULT,      /* initial x pos */
  159.                            CW_USEDEFAULT,      /* initial y pos */
  160.                         CW_USEDEFAULT, /* initial x size */
  161.                         CW_USEDEFAULT, /* initial y size */
  162.                         NULL,               /* parent window handle */
  163.                         NULL,               /* window menu handle */
  164.                         hInstance,          /* program instance handle */
  165.                            NULL);              /* creation parameters */
  166.  
  167. hMenu = GetSystemMenu(hWndMain, FALSE);
  168. AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);
  169. AppendMenu(hMenu, MF_STRING,    IDM_ABOUT, "About...");
  170. AppendMenu(hMenu, MF_STRING,    IDM_SETUP, "Setup...");
  171. AppendMenu(hMenu, MF_STRING,    IDM_HELP,  "Help....");
  172.  
  173. hInst = hInstance;
  174.  
  175. MakeHelpPathName(szHelpFileName);
  176.  
  177. ShowWindow(hWndMain, nCmdShow);
  178. UpdateWindow(hWndMain);
  179.  
  180. (*lpfnDlgSetup)(hWndMain);
  181.  
  182. hWndDlg = CreateDialog(hInst, "CLICK", hWndMain,
  183.                                   MakeProcInstance((*lpfnDisplayDlg), hInst));
  184.  
  185. lstrcpy(szMenuTitle, "AbNormal");
  186. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  187. lstrcpy(szMenuTitle, "AsNormal");
  188. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  189. lstrcpy(szMenuTitle, "ProNormal");
  190. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  191. lstrcpy(szMenuTitle, "Not Normal");
  192. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  193. lstrcpy(szMenuTitle, "Huh?");
  194. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  195. lstrcpy((LPSTR)szMenuTitle, "Normal");
  196. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  197.  
  198. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_SELECTSTRING, -1, (LONG)(LPSTR)szMenuTitle);
  199.  
  200. SendMessage(hWndMain, WM_NCACTIVATE, 1, 0L);
  201.  
  202. while (GetMessage(&msg, NULL, 0, 0))
  203.    {
  204.    if (hWndDlg == 0 || !IsDialogMessage(hWndDlg, &msg))
  205.       {
  206.       TranslateMessage(&msg);
  207.       DispatchMessage(&msg);
  208.       }
  209.    }
  210.  
  211.  
  212. /*----------------------------------------------------------------------------
  213.   Now free the DLLs used in the application...
  214. ----------------------------------------------------------------------------*/
  215. FreeLibrary(hLibWynBtn);
  216. FreeLibrary(hClickBar);
  217. FreeLibrary(hClickDlg);
  218. FreeLibrary(hBWCCDll);
  219.  
  220. return msg.wParam;
  221. }                                       /* int PASCAL WinMain */
  222. #pragma warn .par
  223.  
  224. /*============================================================================
  225.   AboutDlgProc -- Displays the EGO box for the application
  226.  
  227.   File      : ExitWin.C
  228.  
  229.   Prototype : BOOL FAR PASCAL AboutDlgProc (HWND, WORD, WORD, LONG)
  230.  
  231.   Call      : AboutDlgProc (hDlg, message, wParam, lParam)
  232.  
  233.   Library   : 
  234.  
  235.   7 February 1992 - dlcampbell
  236.   (c) 1991 Campbell SoftWare
  237. ----------------------------------------------------------------------------*/
  238. BOOL FAR PASCAL AboutDlgProc (HWND hDlg, WORD message, WORD wParam,
  239.